/*
 * MIT License
 *
 * Copyright (c) 2023 OrdinaryRoad
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: douyin.proto

// Protobuf Java Version: 3.25.3
package tech.ordinaryroad.live.chat.client.codec.douyin.protobuf;

/**
 * Protobuf type {@code User}
 */
public final class User extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:User)
    UserOrBuilder {
private static final long serialVersionUID = 0L;
  // Use User.newBuilder() to construct.
  private User(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private User() {
    nickName_ = "";
    signature_ = "";
    telephone_ = "";
    city_ = "";
    shareQrcodeUri_ = "";
    badgeImageList_ = java.util.Collections.emptyList();
    specialId_ = "";
    realTimeIconsList_ = java.util.Collections.emptyList();
    displayId_ = "";
    secUid_ = "";
    idStr_ = "";
  }

  @Override
  @SuppressWarnings({"unused"})
  protected Object newInstance(
      UnusedPrivateParameter unused) {
    return new User();
  }

  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return Douyin.internal_static_User_descriptor;
  }

  @Override
  protected FieldAccessorTable
      internalGetFieldAccessorTable() {
    return Douyin.internal_static_User_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            User.class, Builder.class);
  }

  private int bitField0_;
  public static final int ID_FIELD_NUMBER = 1;
  private long id_ = 0L;
  /**
   * <code>uint64 id = 1;</code>
   * @return The id.
   */
  @Override
  public long getId() {
    return id_;
  }

  public static final int SHORTID_FIELD_NUMBER = 2;
  private long shortId_ = 0L;
  /**
   * <code>uint64 shortId = 2;</code>
   * @return The shortId.
   */
  @Override
  public long getShortId() {
    return shortId_;
  }

  public static final int NICKNAME_FIELD_NUMBER = 3;
  @SuppressWarnings("serial")
  private volatile Object nickName_ = "";
  /**
   * <code>string nickName = 3;</code>
   * @return The nickName.
   */
  @Override
  public String getNickName() {
    Object ref = nickName_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      nickName_ = s;
      return s;
    }
  }
  /**
   * <code>string nickName = 3;</code>
   * @return The bytes for nickName.
   */
  @Override
  public com.google.protobuf.ByteString
      getNickNameBytes() {
    Object ref = nickName_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      nickName_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int GENDER_FIELD_NUMBER = 4;
  private int gender_ = 0;
  /**
   * <code>uint32 gender = 4;</code>
   * @return The gender.
   */
  @Override
  public int getGender() {
    return gender_;
  }

  public static final int SIGNATURE_FIELD_NUMBER = 5;
  @SuppressWarnings("serial")
  private volatile Object signature_ = "";
  /**
   * <code>string Signature = 5;</code>
   * @return The signature.
   */
  @Override
  public String getSignature() {
    Object ref = signature_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      signature_ = s;
      return s;
    }
  }
  /**
   * <code>string Signature = 5;</code>
   * @return The bytes for signature.
   */
  @Override
  public com.google.protobuf.ByteString
      getSignatureBytes() {
    Object ref = signature_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      signature_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int LEVEL_FIELD_NUMBER = 6;
  private int level_ = 0;
  /**
   * <code>uint32 Level = 6;</code>
   * @return The level.
   */
  @Override
  public int getLevel() {
    return level_;
  }

  public static final int BIRTHDAY_FIELD_NUMBER = 7;
  private long birthday_ = 0L;
  /**
   * <code>uint64 Birthday = 7;</code>
   * @return The birthday.
   */
  @Override
  public long getBirthday() {
    return birthday_;
  }

  public static final int TELEPHONE_FIELD_NUMBER = 8;
  @SuppressWarnings("serial")
  private volatile Object telephone_ = "";
  /**
   * <code>string Telephone = 8;</code>
   * @return The telephone.
   */
  @Override
  public String getTelephone() {
    Object ref = telephone_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      telephone_ = s;
      return s;
    }
  }
  /**
   * <code>string Telephone = 8;</code>
   * @return The bytes for telephone.
   */
  @Override
  public com.google.protobuf.ByteString
      getTelephoneBytes() {
    Object ref = telephone_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      telephone_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int AVATARTHUMB_FIELD_NUMBER = 9;
  private Image avatarThumb_;
  /**
   * <code>.Image AvatarThumb = 9;</code>
   * @return Whether the avatarThumb field is set.
   */
  @Override
  public boolean hasAvatarThumb() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   * <code>.Image AvatarThumb = 9;</code>
   * @return The avatarThumb.
   */
  @Override
  public Image getAvatarThumb() {
    return avatarThumb_ == null ? Image.getDefaultInstance() : avatarThumb_;
  }
  /**
   * <code>.Image AvatarThumb = 9;</code>
   */
  @Override
  public ImageOrBuilder getAvatarThumbOrBuilder() {
    return avatarThumb_ == null ? Image.getDefaultInstance() : avatarThumb_;
  }

  public static final int AVATARMEDIUM_FIELD_NUMBER = 10;
  private Image avatarMedium_;
  /**
   * <code>.Image AvatarMedium = 10;</code>
   * @return Whether the avatarMedium field is set.
   */
  @Override
  public boolean hasAvatarMedium() {
    return ((bitField0_ & 0x00000002) != 0);
  }
  /**
   * <code>.Image AvatarMedium = 10;</code>
   * @return The avatarMedium.
   */
  @Override
  public Image getAvatarMedium() {
    return avatarMedium_ == null ? Image.getDefaultInstance() : avatarMedium_;
  }
  /**
   * <code>.Image AvatarMedium = 10;</code>
   */
  @Override
  public ImageOrBuilder getAvatarMediumOrBuilder() {
    return avatarMedium_ == null ? Image.getDefaultInstance() : avatarMedium_;
  }

  public static final int AVATARLARGE_FIELD_NUMBER = 11;
  private Image avatarLarge_;
  /**
   * <code>.Image AvatarLarge = 11;</code>
   * @return Whether the avatarLarge field is set.
   */
  @Override
  public boolean hasAvatarLarge() {
    return ((bitField0_ & 0x00000004) != 0);
  }
  /**
   * <code>.Image AvatarLarge = 11;</code>
   * @return The avatarLarge.
   */
  @Override
  public Image getAvatarLarge() {
    return avatarLarge_ == null ? Image.getDefaultInstance() : avatarLarge_;
  }
  /**
   * <code>.Image AvatarLarge = 11;</code>
   */
  @Override
  public ImageOrBuilder getAvatarLargeOrBuilder() {
    return avatarLarge_ == null ? Image.getDefaultInstance() : avatarLarge_;
  }

  public static final int VERIFIED_FIELD_NUMBER = 12;
  private boolean verified_ = false;
  /**
   * <code>bool Verified = 12;</code>
   * @return The verified.
   */
  @Override
  public boolean getVerified() {
    return verified_;
  }

  public static final int EXPERIENCE_FIELD_NUMBER = 13;
  private int experience_ = 0;
  /**
   * <code>uint32 Experience = 13;</code>
   * @return The experience.
   */
  @Override
  public int getExperience() {
    return experience_;
  }

  public static final int CITY_FIELD_NUMBER = 14;
  @SuppressWarnings("serial")
  private volatile Object city_ = "";
  /**
   * <code>string city = 14;</code>
   * @return The city.
   */
  @Override
  public String getCity() {
    Object ref = city_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      city_ = s;
      return s;
    }
  }
  /**
   * <code>string city = 14;</code>
   * @return The bytes for city.
   */
  @Override
  public com.google.protobuf.ByteString
      getCityBytes() {
    Object ref = city_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      city_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int STATUS_FIELD_NUMBER = 15;
  private int status_ = 0;
  /**
   * <code>int32 Status = 15;</code>
   * @return The status.
   */
  @Override
  public int getStatus() {
    return status_;
  }

  public static final int CREATETIME_FIELD_NUMBER = 16;
  private long createTime_ = 0L;
  /**
   * <code>uint64 CreateTime = 16;</code>
   * @return The createTime.
   */
  @Override
  public long getCreateTime() {
    return createTime_;
  }

  public static final int MODIFYTIME_FIELD_NUMBER = 17;
  private long modifyTime_ = 0L;
  /**
   * <code>uint64 ModifyTime = 17;</code>
   * @return The modifyTime.
   */
  @Override
  public long getModifyTime() {
    return modifyTime_;
  }

  public static final int SECRET_FIELD_NUMBER = 18;
  private int secret_ = 0;
  /**
   * <code>uint32 Secret = 18;</code>
   * @return The secret.
   */
  @Override
  public int getSecret() {
    return secret_;
  }

  public static final int SHAREQRCODEURI_FIELD_NUMBER = 19;
  @SuppressWarnings("serial")
  private volatile Object shareQrcodeUri_ = "";
  /**
   * <code>string ShareQrcodeUri = 19;</code>
   * @return The shareQrcodeUri.
   */
  @Override
  public String getShareQrcodeUri() {
    Object ref = shareQrcodeUri_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      shareQrcodeUri_ = s;
      return s;
    }
  }
  /**
   * <code>string ShareQrcodeUri = 19;</code>
   * @return The bytes for shareQrcodeUri.
   */
  @Override
  public com.google.protobuf.ByteString
      getShareQrcodeUriBytes() {
    Object ref = shareQrcodeUri_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      shareQrcodeUri_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int INCOMESHAREPERCENT_FIELD_NUMBER = 20;
  private int incomeSharePercent_ = 0;
  /**
   * <code>uint32 IncomeSharePercent = 20;</code>
   * @return The incomeSharePercent.
   */
  @Override
  public int getIncomeSharePercent() {
    return incomeSharePercent_;
  }

  public static final int BADGEIMAGELIST_FIELD_NUMBER = 21;
  @SuppressWarnings("serial")
  private java.util.List<Image> badgeImageList_;
  /**
   * <code>repeated .Image BadgeImageList = 21;</code>
   */
  @Override
  public java.util.List<Image> getBadgeImageListList() {
    return badgeImageList_;
  }
  /**
   * <code>repeated .Image BadgeImageList = 21;</code>
   */
  @Override
  public java.util.List<? extends ImageOrBuilder>
      getBadgeImageListOrBuilderList() {
    return badgeImageList_;
  }
  /**
   * <code>repeated .Image BadgeImageList = 21;</code>
   */
  @Override
  public int getBadgeImageListCount() {
    return badgeImageList_.size();
  }
  /**
   * <code>repeated .Image BadgeImageList = 21;</code>
   */
  @Override
  public Image getBadgeImageList(int index) {
    return badgeImageList_.get(index);
  }
  /**
   * <code>repeated .Image BadgeImageList = 21;</code>
   */
  @Override
  public ImageOrBuilder getBadgeImageListOrBuilder(
      int index) {
    return badgeImageList_.get(index);
  }

  public static final int FOLLOWINFO_FIELD_NUMBER = 22;
  private FollowInfo followInfo_;
  /**
   * <code>.FollowInfo FollowInfo = 22;</code>
   * @return Whether the followInfo field is set.
   */
  @Override
  public boolean hasFollowInfo() {
    return ((bitField0_ & 0x00000008) != 0);
  }
  /**
   * <code>.FollowInfo FollowInfo = 22;</code>
   * @return The followInfo.
   */
  @Override
  public FollowInfo getFollowInfo() {
    return followInfo_ == null ? FollowInfo.getDefaultInstance() : followInfo_;
  }
  /**
   * <code>.FollowInfo FollowInfo = 22;</code>
   */
  @Override
  public FollowInfoOrBuilder getFollowInfoOrBuilder() {
    return followInfo_ == null ? FollowInfo.getDefaultInstance() : followInfo_;
  }

  public static final int PAYGRADE_FIELD_NUMBER = 23;
  private PayGrade payGrade_;
  /**
   * <code>.PayGrade PayGrade = 23;</code>
   * @return Whether the payGrade field is set.
   */
  @Override
  public boolean hasPayGrade() {
    return ((bitField0_ & 0x00000010) != 0);
  }
  /**
   * <code>.PayGrade PayGrade = 23;</code>
   * @return The payGrade.
   */
  @Override
  public PayGrade getPayGrade() {
    return payGrade_ == null ? PayGrade.getDefaultInstance() : payGrade_;
  }
  /**
   * <code>.PayGrade PayGrade = 23;</code>
   */
  @Override
  public PayGradeOrBuilder getPayGradeOrBuilder() {
    return payGrade_ == null ? PayGrade.getDefaultInstance() : payGrade_;
  }

  public static final int FANSCLUB_FIELD_NUMBER = 24;
  private FansClub fansClub_;
  /**
   * <code>.FansClub FansClub = 24;</code>
   * @return Whether the fansClub field is set.
   */
  @Override
  public boolean hasFansClub() {
    return ((bitField0_ & 0x00000020) != 0);
  }
  /**
   * <code>.FansClub FansClub = 24;</code>
   * @return The fansClub.
   */
  @Override
  public FansClub getFansClub() {
    return fansClub_ == null ? FansClub.getDefaultInstance() : fansClub_;
  }
  /**
   * <code>.FansClub FansClub = 24;</code>
   */
  @Override
  public FansClubOrBuilder getFansClubOrBuilder() {
    return fansClub_ == null ? FansClub.getDefaultInstance() : fansClub_;
  }

  public static final int SPECIALID_FIELD_NUMBER = 26;
  @SuppressWarnings("serial")
  private volatile Object specialId_ = "";
  /**
   * <pre>
   *  Border Border = 25;
   * </pre>
   *
   * <code>string SpecialId = 26;</code>
   * @return The specialId.
   */
  @Override
  public String getSpecialId() {
    Object ref = specialId_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      specialId_ = s;
      return s;
    }
  }
  /**
   * <pre>
   *  Border Border = 25;
   * </pre>
   *
   * <code>string SpecialId = 26;</code>
   * @return The bytes for specialId.
   */
  @Override
  public com.google.protobuf.ByteString
      getSpecialIdBytes() {
    Object ref = specialId_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      specialId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int AVATARBORDER_FIELD_NUMBER = 27;
  private Image avatarBorder_;
  /**
   * <code>.Image AvatarBorder = 27;</code>
   * @return Whether the avatarBorder field is set.
   */
  @Override
  public boolean hasAvatarBorder() {
    return ((bitField0_ & 0x00000040) != 0);
  }
  /**
   * <code>.Image AvatarBorder = 27;</code>
   * @return The avatarBorder.
   */
  @Override
  public Image getAvatarBorder() {
    return avatarBorder_ == null ? Image.getDefaultInstance() : avatarBorder_;
  }
  /**
   * <code>.Image AvatarBorder = 27;</code>
   */
  @Override
  public ImageOrBuilder getAvatarBorderOrBuilder() {
    return avatarBorder_ == null ? Image.getDefaultInstance() : avatarBorder_;
  }

  public static final int MEDAL_FIELD_NUMBER = 28;
  private Image medal_;
  /**
   * <code>.Image Medal = 28;</code>
   * @return Whether the medal field is set.
   */
  @Override
  public boolean hasMedal() {
    return ((bitField0_ & 0x00000080) != 0);
  }
  /**
   * <code>.Image Medal = 28;</code>
   * @return The medal.
   */
  @Override
  public Image getMedal() {
    return medal_ == null ? Image.getDefaultInstance() : medal_;
  }
  /**
   * <code>.Image Medal = 28;</code>
   */
  @Override
  public ImageOrBuilder getMedalOrBuilder() {
    return medal_ == null ? Image.getDefaultInstance() : medal_;
  }

  public static final int REALTIMEICONSLIST_FIELD_NUMBER = 29;
  @SuppressWarnings("serial")
  private java.util.List<Image> realTimeIconsList_;
  /**
   * <code>repeated .Image RealTimeIconsList = 29;</code>
   */
  @Override
  public java.util.List<Image> getRealTimeIconsListList() {
    return realTimeIconsList_;
  }
  /**
   * <code>repeated .Image RealTimeIconsList = 29;</code>
   */
  @Override
  public java.util.List<? extends ImageOrBuilder>
      getRealTimeIconsListOrBuilderList() {
    return realTimeIconsList_;
  }
  /**
   * <code>repeated .Image RealTimeIconsList = 29;</code>
   */
  @Override
  public int getRealTimeIconsListCount() {
    return realTimeIconsList_.size();
  }
  /**
   * <code>repeated .Image RealTimeIconsList = 29;</code>
   */
  @Override
  public Image getRealTimeIconsList(int index) {
    return realTimeIconsList_.get(index);
  }
  /**
   * <code>repeated .Image RealTimeIconsList = 29;</code>
   */
  @Override
  public ImageOrBuilder getRealTimeIconsListOrBuilder(
      int index) {
    return realTimeIconsList_.get(index);
  }

  public static final int DISPLAYID_FIELD_NUMBER = 38;
  @SuppressWarnings("serial")
  private volatile Object displayId_ = "";
  /**
   * <code>string displayId = 38;</code>
   * @return The displayId.
   */
  @Override
  public String getDisplayId() {
    Object ref = displayId_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      displayId_ = s;
      return s;
    }
  }
  /**
   * <code>string displayId = 38;</code>
   * @return The bytes for displayId.
   */
  @Override
  public com.google.protobuf.ByteString
      getDisplayIdBytes() {
    Object ref = displayId_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      displayId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int SECUID_FIELD_NUMBER = 46;
  @SuppressWarnings("serial")
  private volatile Object secUid_ = "";
  /**
   * <code>string secUid = 46;</code>
   * @return The secUid.
   */
  @Override
  public String getSecUid() {
    Object ref = secUid_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      secUid_ = s;
      return s;
    }
  }
  /**
   * <code>string secUid = 46;</code>
   * @return The bytes for secUid.
   */
  @Override
  public com.google.protobuf.ByteString
      getSecUidBytes() {
    Object ref = secUid_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      secUid_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int FANTICKETCOUNT_FIELD_NUMBER = 1022;
  private long fanTicketCount_ = 0L;
  /**
   * <code>uint64 fanTicketCount = 1022;</code>
   * @return The fanTicketCount.
   */
  @Override
  public long getFanTicketCount() {
    return fanTicketCount_;
  }

  public static final int IDSTR_FIELD_NUMBER = 1028;
  @SuppressWarnings("serial")
  private volatile Object idStr_ = "";
  /**
   * <code>string idStr = 1028;</code>
   * @return The idStr.
   */
  @Override
  public String getIdStr() {
    Object ref = idStr_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      idStr_ = s;
      return s;
    }
  }
  /**
   * <code>string idStr = 1028;</code>
   * @return The bytes for idStr.
   */
  @Override
  public com.google.protobuf.ByteString
      getIdStrBytes() {
    Object ref = idStr_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      idStr_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int AGERANGE_FIELD_NUMBER = 1045;
  private int ageRange_ = 0;
  /**
   * <code>uint32 ageRange = 1045;</code>
   * @return The ageRange.
   */
  @Override
  public int getAgeRange() {
    return ageRange_;
  }

  private byte memoizedIsInitialized = -1;
  @Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    if (id_ != 0L) {
      output.writeUInt64(1, id_);
    }
    if (shortId_ != 0L) {
      output.writeUInt64(2, shortId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickName_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, nickName_);
    }
    if (gender_ != 0) {
      output.writeUInt32(4, gender_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(signature_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 5, signature_);
    }
    if (level_ != 0) {
      output.writeUInt32(6, level_);
    }
    if (birthday_ != 0L) {
      output.writeUInt64(7, birthday_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(telephone_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 8, telephone_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeMessage(9, getAvatarThumb());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      output.writeMessage(10, getAvatarMedium());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      output.writeMessage(11, getAvatarLarge());
    }
    if (verified_ != false) {
      output.writeBool(12, verified_);
    }
    if (experience_ != 0) {
      output.writeUInt32(13, experience_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(city_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 14, city_);
    }
    if (status_ != 0) {
      output.writeInt32(15, status_);
    }
    if (createTime_ != 0L) {
      output.writeUInt64(16, createTime_);
    }
    if (modifyTime_ != 0L) {
      output.writeUInt64(17, modifyTime_);
    }
    if (secret_ != 0) {
      output.writeUInt32(18, secret_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shareQrcodeUri_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 19, shareQrcodeUri_);
    }
    if (incomeSharePercent_ != 0) {
      output.writeUInt32(20, incomeSharePercent_);
    }
    for (int i = 0; i < badgeImageList_.size(); i++) {
      output.writeMessage(21, badgeImageList_.get(i));
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      output.writeMessage(22, getFollowInfo());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      output.writeMessage(23, getPayGrade());
    }
    if (((bitField0_ & 0x00000020) != 0)) {
      output.writeMessage(24, getFansClub());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(specialId_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 26, specialId_);
    }
    if (((bitField0_ & 0x00000040) != 0)) {
      output.writeMessage(27, getAvatarBorder());
    }
    if (((bitField0_ & 0x00000080) != 0)) {
      output.writeMessage(28, getMedal());
    }
    for (int i = 0; i < realTimeIconsList_.size(); i++) {
      output.writeMessage(29, realTimeIconsList_.get(i));
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayId_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 38, displayId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(secUid_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 46, secUid_);
    }
    if (fanTicketCount_ != 0L) {
      output.writeUInt64(1022, fanTicketCount_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(idStr_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1028, idStr_);
    }
    if (ageRange_ != 0) {
      output.writeUInt32(1045, ageRange_);
    }
    getUnknownFields().writeTo(output);
  }

  @Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (id_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt64Size(1, id_);
    }
    if (shortId_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt64Size(2, shortId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickName_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, nickName_);
    }
    if (gender_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(4, gender_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(signature_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, signature_);
    }
    if (level_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(6, level_);
    }
    if (birthday_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt64Size(7, birthday_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(telephone_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, telephone_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(9, getAvatarThumb());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(10, getAvatarMedium());
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(11, getAvatarLarge());
    }
    if (verified_ != false) {
      size += com.google.protobuf.CodedOutputStream
        .computeBoolSize(12, verified_);
    }
    if (experience_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(13, experience_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(city_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, city_);
    }
    if (status_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(15, status_);
    }
    if (createTime_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt64Size(16, createTime_);
    }
    if (modifyTime_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt64Size(17, modifyTime_);
    }
    if (secret_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(18, secret_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shareQrcodeUri_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, shareQrcodeUri_);
    }
    if (incomeSharePercent_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(20, incomeSharePercent_);
    }
    for (int i = 0; i < badgeImageList_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(21, badgeImageList_.get(i));
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(22, getFollowInfo());
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(23, getPayGrade());
    }
    if (((bitField0_ & 0x00000020) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(24, getFansClub());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(specialId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, specialId_);
    }
    if (((bitField0_ & 0x00000040) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(27, getAvatarBorder());
    }
    if (((bitField0_ & 0x00000080) != 0)) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(28, getMedal());
    }
    for (int i = 0; i < realTimeIconsList_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(29, realTimeIconsList_.get(i));
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(38, displayId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(secUid_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(46, secUid_);
    }
    if (fanTicketCount_ != 0L) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt64Size(1022, fanTicketCount_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(idStr_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1028, idStr_);
    }
    if (ageRange_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeUInt32Size(1045, ageRange_);
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @Override
  public boolean equals(final Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof User)) {
      return super.equals(obj);
    }
    User other = (User) obj;

    if (getId()
        != other.getId()) return false;
    if (getShortId()
        != other.getShortId()) return false;
    if (!getNickName()
        .equals(other.getNickName())) return false;
    if (getGender()
        != other.getGender()) return false;
    if (!getSignature()
        .equals(other.getSignature())) return false;
    if (getLevel()
        != other.getLevel()) return false;
    if (getBirthday()
        != other.getBirthday()) return false;
    if (!getTelephone()
        .equals(other.getTelephone())) return false;
    if (hasAvatarThumb() != other.hasAvatarThumb()) return false;
    if (hasAvatarThumb()) {
      if (!getAvatarThumb()
          .equals(other.getAvatarThumb())) return false;
    }
    if (hasAvatarMedium() != other.hasAvatarMedium()) return false;
    if (hasAvatarMedium()) {
      if (!getAvatarMedium()
          .equals(other.getAvatarMedium())) return false;
    }
    if (hasAvatarLarge() != other.hasAvatarLarge()) return false;
    if (hasAvatarLarge()) {
      if (!getAvatarLarge()
          .equals(other.getAvatarLarge())) return false;
    }
    if (getVerified()
        != other.getVerified()) return false;
    if (getExperience()
        != other.getExperience()) return false;
    if (!getCity()
        .equals(other.getCity())) return false;
    if (getStatus()
        != other.getStatus()) return false;
    if (getCreateTime()
        != other.getCreateTime()) return false;
    if (getModifyTime()
        != other.getModifyTime()) return false;
    if (getSecret()
        != other.getSecret()) return false;
    if (!getShareQrcodeUri()
        .equals(other.getShareQrcodeUri())) return false;
    if (getIncomeSharePercent()
        != other.getIncomeSharePercent()) return false;
    if (!getBadgeImageListList()
        .equals(other.getBadgeImageListList())) return false;
    if (hasFollowInfo() != other.hasFollowInfo()) return false;
    if (hasFollowInfo()) {
      if (!getFollowInfo()
          .equals(other.getFollowInfo())) return false;
    }
    if (hasPayGrade() != other.hasPayGrade()) return false;
    if (hasPayGrade()) {
      if (!getPayGrade()
          .equals(other.getPayGrade())) return false;
    }
    if (hasFansClub() != other.hasFansClub()) return false;
    if (hasFansClub()) {
      if (!getFansClub()
          .equals(other.getFansClub())) return false;
    }
    if (!getSpecialId()
        .equals(other.getSpecialId())) return false;
    if (hasAvatarBorder() != other.hasAvatarBorder()) return false;
    if (hasAvatarBorder()) {
      if (!getAvatarBorder()
          .equals(other.getAvatarBorder())) return false;
    }
    if (hasMedal() != other.hasMedal()) return false;
    if (hasMedal()) {
      if (!getMedal()
          .equals(other.getMedal())) return false;
    }
    if (!getRealTimeIconsListList()
        .equals(other.getRealTimeIconsListList())) return false;
    if (!getDisplayId()
        .equals(other.getDisplayId())) return false;
    if (!getSecUid()
        .equals(other.getSecUid())) return false;
    if (getFanTicketCount()
        != other.getFanTicketCount()) return false;
    if (!getIdStr()
        .equals(other.getIdStr())) return false;
    if (getAgeRange()
        != other.getAgeRange()) return false;
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }

  @Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + ID_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getId());
    hash = (37 * hash) + SHORTID_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getShortId());
    hash = (37 * hash) + NICKNAME_FIELD_NUMBER;
    hash = (53 * hash) + getNickName().hashCode();
    hash = (37 * hash) + GENDER_FIELD_NUMBER;
    hash = (53 * hash) + getGender();
    hash = (37 * hash) + SIGNATURE_FIELD_NUMBER;
    hash = (53 * hash) + getSignature().hashCode();
    hash = (37 * hash) + LEVEL_FIELD_NUMBER;
    hash = (53 * hash) + getLevel();
    hash = (37 * hash) + BIRTHDAY_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getBirthday());
    hash = (37 * hash) + TELEPHONE_FIELD_NUMBER;
    hash = (53 * hash) + getTelephone().hashCode();
    if (hasAvatarThumb()) {
      hash = (37 * hash) + AVATARTHUMB_FIELD_NUMBER;
      hash = (53 * hash) + getAvatarThumb().hashCode();
    }
    if (hasAvatarMedium()) {
      hash = (37 * hash) + AVATARMEDIUM_FIELD_NUMBER;
      hash = (53 * hash) + getAvatarMedium().hashCode();
    }
    if (hasAvatarLarge()) {
      hash = (37 * hash) + AVATARLARGE_FIELD_NUMBER;
      hash = (53 * hash) + getAvatarLarge().hashCode();
    }
    hash = (37 * hash) + VERIFIED_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
        getVerified());
    hash = (37 * hash) + EXPERIENCE_FIELD_NUMBER;
    hash = (53 * hash) + getExperience();
    hash = (37 * hash) + CITY_FIELD_NUMBER;
    hash = (53 * hash) + getCity().hashCode();
    hash = (37 * hash) + STATUS_FIELD_NUMBER;
    hash = (53 * hash) + getStatus();
    hash = (37 * hash) + CREATETIME_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getCreateTime());
    hash = (37 * hash) + MODIFYTIME_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getModifyTime());
    hash = (37 * hash) + SECRET_FIELD_NUMBER;
    hash = (53 * hash) + getSecret();
    hash = (37 * hash) + SHAREQRCODEURI_FIELD_NUMBER;
    hash = (53 * hash) + getShareQrcodeUri().hashCode();
    hash = (37 * hash) + INCOMESHAREPERCENT_FIELD_NUMBER;
    hash = (53 * hash) + getIncomeSharePercent();
    if (getBadgeImageListCount() > 0) {
      hash = (37 * hash) + BADGEIMAGELIST_FIELD_NUMBER;
      hash = (53 * hash) + getBadgeImageListList().hashCode();
    }
    if (hasFollowInfo()) {
      hash = (37 * hash) + FOLLOWINFO_FIELD_NUMBER;
      hash = (53 * hash) + getFollowInfo().hashCode();
    }
    if (hasPayGrade()) {
      hash = (37 * hash) + PAYGRADE_FIELD_NUMBER;
      hash = (53 * hash) + getPayGrade().hashCode();
    }
    if (hasFansClub()) {
      hash = (37 * hash) + FANSCLUB_FIELD_NUMBER;
      hash = (53 * hash) + getFansClub().hashCode();
    }
    hash = (37 * hash) + SPECIALID_FIELD_NUMBER;
    hash = (53 * hash) + getSpecialId().hashCode();
    if (hasAvatarBorder()) {
      hash = (37 * hash) + AVATARBORDER_FIELD_NUMBER;
      hash = (53 * hash) + getAvatarBorder().hashCode();
    }
    if (hasMedal()) {
      hash = (37 * hash) + MEDAL_FIELD_NUMBER;
      hash = (53 * hash) + getMedal().hashCode();
    }
    if (getRealTimeIconsListCount() > 0) {
      hash = (37 * hash) + REALTIMEICONSLIST_FIELD_NUMBER;
      hash = (53 * hash) + getRealTimeIconsListList().hashCode();
    }
    hash = (37 * hash) + DISPLAYID_FIELD_NUMBER;
    hash = (53 * hash) + getDisplayId().hashCode();
    hash = (37 * hash) + SECUID_FIELD_NUMBER;
    hash = (53 * hash) + getSecUid().hashCode();
    hash = (37 * hash) + FANTICKETCOUNT_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        getFanTicketCount());
    hash = (37 * hash) + IDSTR_FIELD_NUMBER;
    hash = (53 * hash) + getIdStr().hashCode();
    hash = (37 * hash) + AGERANGE_FIELD_NUMBER;
    hash = (53 * hash) + getAgeRange();
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static User parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static User parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static User parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static User parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static User parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static User parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static User parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static User parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  public static User parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }

  public static User parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }
  public static User parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static User parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(User prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @Override
  protected Builder newBuilderForType(
      BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * Protobuf type {@code User}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:User)
      UserOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return Douyin.internal_static_User_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return Douyin.internal_static_User_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              User.class, Builder.class);
    }

    // Construct using tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.User.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
              .alwaysUseFieldBuilders) {
        getAvatarThumbFieldBuilder();
        getAvatarMediumFieldBuilder();
        getAvatarLargeFieldBuilder();
        getBadgeImageListFieldBuilder();
        getFollowInfoFieldBuilder();
        getPayGradeFieldBuilder();
        getFansClubFieldBuilder();
        getAvatarBorderFieldBuilder();
        getMedalFieldBuilder();
        getRealTimeIconsListFieldBuilder();
      }
    }
    @Override
    public Builder clear() {
      super.clear();
      bitField0_ = 0;
      bitField1_ = 0;
      id_ = 0L;
      shortId_ = 0L;
      nickName_ = "";
      gender_ = 0;
      signature_ = "";
      level_ = 0;
      birthday_ = 0L;
      telephone_ = "";
      avatarThumb_ = null;
      if (avatarThumbBuilder_ != null) {
        avatarThumbBuilder_.dispose();
        avatarThumbBuilder_ = null;
      }
      avatarMedium_ = null;
      if (avatarMediumBuilder_ != null) {
        avatarMediumBuilder_.dispose();
        avatarMediumBuilder_ = null;
      }
      avatarLarge_ = null;
      if (avatarLargeBuilder_ != null) {
        avatarLargeBuilder_.dispose();
        avatarLargeBuilder_ = null;
      }
      verified_ = false;
      experience_ = 0;
      city_ = "";
      status_ = 0;
      createTime_ = 0L;
      modifyTime_ = 0L;
      secret_ = 0;
      shareQrcodeUri_ = "";
      incomeSharePercent_ = 0;
      if (badgeImageListBuilder_ == null) {
        badgeImageList_ = java.util.Collections.emptyList();
      } else {
        badgeImageList_ = null;
        badgeImageListBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00100000);
      followInfo_ = null;
      if (followInfoBuilder_ != null) {
        followInfoBuilder_.dispose();
        followInfoBuilder_ = null;
      }
      payGrade_ = null;
      if (payGradeBuilder_ != null) {
        payGradeBuilder_.dispose();
        payGradeBuilder_ = null;
      }
      fansClub_ = null;
      if (fansClubBuilder_ != null) {
        fansClubBuilder_.dispose();
        fansClubBuilder_ = null;
      }
      specialId_ = "";
      avatarBorder_ = null;
      if (avatarBorderBuilder_ != null) {
        avatarBorderBuilder_.dispose();
        avatarBorderBuilder_ = null;
      }
      medal_ = null;
      if (medalBuilder_ != null) {
        medalBuilder_.dispose();
        medalBuilder_ = null;
      }
      if (realTimeIconsListBuilder_ == null) {
        realTimeIconsList_ = java.util.Collections.emptyList();
      } else {
        realTimeIconsList_ = null;
        realTimeIconsListBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x08000000);
      displayId_ = "";
      secUid_ = "";
      fanTicketCount_ = 0L;
      idStr_ = "";
      ageRange_ = 0;
      return this;
    }

    @Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return Douyin.internal_static_User_descriptor;
    }

    @Override
    public User getDefaultInstanceForType() {
      return User.getDefaultInstance();
    }

    @Override
    public User build() {
      User result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @Override
    public User buildPartial() {
      User result = new User(this);
      buildPartialRepeatedFields(result);
      if (bitField0_ != 0) { buildPartial0(result); }
      if (bitField1_ != 0) { buildPartial1(result); }
      onBuilt();
      return result;
    }

    private void buildPartialRepeatedFields(User result) {
      if (badgeImageListBuilder_ == null) {
        if (((bitField0_ & 0x00100000) != 0)) {
          badgeImageList_ = java.util.Collections.unmodifiableList(badgeImageList_);
          bitField0_ = (bitField0_ & ~0x00100000);
        }
        result.badgeImageList_ = badgeImageList_;
      } else {
        result.badgeImageList_ = badgeImageListBuilder_.build();
      }
      if (realTimeIconsListBuilder_ == null) {
        if (((bitField0_ & 0x08000000) != 0)) {
          realTimeIconsList_ = java.util.Collections.unmodifiableList(realTimeIconsList_);
          bitField0_ = (bitField0_ & ~0x08000000);
        }
        result.realTimeIconsList_ = realTimeIconsList_;
      } else {
        result.realTimeIconsList_ = realTimeIconsListBuilder_.build();
      }
    }

    private void buildPartial0(User result) {
      int from_bitField0_ = bitField0_;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        result.id_ = id_;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        result.shortId_ = shortId_;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        result.nickName_ = nickName_;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.gender_ = gender_;
      }
      if (((from_bitField0_ & 0x00000010) != 0)) {
        result.signature_ = signature_;
      }
      if (((from_bitField0_ & 0x00000020) != 0)) {
        result.level_ = level_;
      }
      if (((from_bitField0_ & 0x00000040) != 0)) {
        result.birthday_ = birthday_;
      }
      if (((from_bitField0_ & 0x00000080) != 0)) {
        result.telephone_ = telephone_;
      }
      int to_bitField0_ = 0;
      if (((from_bitField0_ & 0x00000100) != 0)) {
        result.avatarThumb_ = avatarThumbBuilder_ == null
            ? avatarThumb_
            : avatarThumbBuilder_.build();
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000200) != 0)) {
        result.avatarMedium_ = avatarMediumBuilder_ == null
            ? avatarMedium_
            : avatarMediumBuilder_.build();
        to_bitField0_ |= 0x00000002;
      }
      if (((from_bitField0_ & 0x00000400) != 0)) {
        result.avatarLarge_ = avatarLargeBuilder_ == null
            ? avatarLarge_
            : avatarLargeBuilder_.build();
        to_bitField0_ |= 0x00000004;
      }
      if (((from_bitField0_ & 0x00000800) != 0)) {
        result.verified_ = verified_;
      }
      if (((from_bitField0_ & 0x00001000) != 0)) {
        result.experience_ = experience_;
      }
      if (((from_bitField0_ & 0x00002000) != 0)) {
        result.city_ = city_;
      }
      if (((from_bitField0_ & 0x00004000) != 0)) {
        result.status_ = status_;
      }
      if (((from_bitField0_ & 0x00008000) != 0)) {
        result.createTime_ = createTime_;
      }
      if (((from_bitField0_ & 0x00010000) != 0)) {
        result.modifyTime_ = modifyTime_;
      }
      if (((from_bitField0_ & 0x00020000) != 0)) {
        result.secret_ = secret_;
      }
      if (((from_bitField0_ & 0x00040000) != 0)) {
        result.shareQrcodeUri_ = shareQrcodeUri_;
      }
      if (((from_bitField0_ & 0x00080000) != 0)) {
        result.incomeSharePercent_ = incomeSharePercent_;
      }
      if (((from_bitField0_ & 0x00200000) != 0)) {
        result.followInfo_ = followInfoBuilder_ == null
            ? followInfo_
            : followInfoBuilder_.build();
        to_bitField0_ |= 0x00000008;
      }
      if (((from_bitField0_ & 0x00400000) != 0)) {
        result.payGrade_ = payGradeBuilder_ == null
            ? payGrade_
            : payGradeBuilder_.build();
        to_bitField0_ |= 0x00000010;
      }
      if (((from_bitField0_ & 0x00800000) != 0)) {
        result.fansClub_ = fansClubBuilder_ == null
            ? fansClub_
            : fansClubBuilder_.build();
        to_bitField0_ |= 0x00000020;
      }
      if (((from_bitField0_ & 0x01000000) != 0)) {
        result.specialId_ = specialId_;
      }
      if (((from_bitField0_ & 0x02000000) != 0)) {
        result.avatarBorder_ = avatarBorderBuilder_ == null
            ? avatarBorder_
            : avatarBorderBuilder_.build();
        to_bitField0_ |= 0x00000040;
      }
      if (((from_bitField0_ & 0x04000000) != 0)) {
        result.medal_ = medalBuilder_ == null
            ? medal_
            : medalBuilder_.build();
        to_bitField0_ |= 0x00000080;
      }
      if (((from_bitField0_ & 0x10000000) != 0)) {
        result.displayId_ = displayId_;
      }
      if (((from_bitField0_ & 0x20000000) != 0)) {
        result.secUid_ = secUid_;
      }
      if (((from_bitField0_ & 0x40000000) != 0)) {
        result.fanTicketCount_ = fanTicketCount_;
      }
      if (((from_bitField0_ & 0x80000000) != 0)) {
        result.idStr_ = idStr_;
      }
      result.bitField0_ |= to_bitField0_;
    }

    private void buildPartial1(User result) {
      int from_bitField1_ = bitField1_;
      if (((from_bitField1_ & 0x00000001) != 0)) {
        result.ageRange_ = ageRange_;
      }
    }

    @Override
    public Builder clone() {
      return super.clone();
    }
    @Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        Object value) {
      return super.setField(field, value);
    }
    @Override
    public Builder clearField(
        com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }
    @Override
    public Builder clearOneof(
        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }
    @Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index, Object value) {
      return super.setRepeatedField(field, index, value);
    }
    @Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        Object value) {
      return super.addRepeatedField(field, value);
    }
    @Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof User) {
        return mergeFrom((User)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(User other) {
      if (other == User.getDefaultInstance()) return this;
      if (other.getId() != 0L) {
        setId(other.getId());
      }
      if (other.getShortId() != 0L) {
        setShortId(other.getShortId());
      }
      if (!other.getNickName().isEmpty()) {
        nickName_ = other.nickName_;
        bitField0_ |= 0x00000004;
        onChanged();
      }
      if (other.getGender() != 0) {
        setGender(other.getGender());
      }
      if (!other.getSignature().isEmpty()) {
        signature_ = other.signature_;
        bitField0_ |= 0x00000010;
        onChanged();
      }
      if (other.getLevel() != 0) {
        setLevel(other.getLevel());
      }
      if (other.getBirthday() != 0L) {
        setBirthday(other.getBirthday());
      }
      if (!other.getTelephone().isEmpty()) {
        telephone_ = other.telephone_;
        bitField0_ |= 0x00000080;
        onChanged();
      }
      if (other.hasAvatarThumb()) {
        mergeAvatarThumb(other.getAvatarThumb());
      }
      if (other.hasAvatarMedium()) {
        mergeAvatarMedium(other.getAvatarMedium());
      }
      if (other.hasAvatarLarge()) {
        mergeAvatarLarge(other.getAvatarLarge());
      }
      if (other.getVerified() != false) {
        setVerified(other.getVerified());
      }
      if (other.getExperience() != 0) {
        setExperience(other.getExperience());
      }
      if (!other.getCity().isEmpty()) {
        city_ = other.city_;
        bitField0_ |= 0x00002000;
        onChanged();
      }
      if (other.getStatus() != 0) {
        setStatus(other.getStatus());
      }
      if (other.getCreateTime() != 0L) {
        setCreateTime(other.getCreateTime());
      }
      if (other.getModifyTime() != 0L) {
        setModifyTime(other.getModifyTime());
      }
      if (other.getSecret() != 0) {
        setSecret(other.getSecret());
      }
      if (!other.getShareQrcodeUri().isEmpty()) {
        shareQrcodeUri_ = other.shareQrcodeUri_;
        bitField0_ |= 0x00040000;
        onChanged();
      }
      if (other.getIncomeSharePercent() != 0) {
        setIncomeSharePercent(other.getIncomeSharePercent());
      }
      if (badgeImageListBuilder_ == null) {
        if (!other.badgeImageList_.isEmpty()) {
          if (badgeImageList_.isEmpty()) {
            badgeImageList_ = other.badgeImageList_;
            bitField0_ = (bitField0_ & ~0x00100000);
          } else {
            ensureBadgeImageListIsMutable();
            badgeImageList_.addAll(other.badgeImageList_);
          }
          onChanged();
        }
      } else {
        if (!other.badgeImageList_.isEmpty()) {
          if (badgeImageListBuilder_.isEmpty()) {
            badgeImageListBuilder_.dispose();
            badgeImageListBuilder_ = null;
            badgeImageList_ = other.badgeImageList_;
            bitField0_ = (bitField0_ & ~0x00100000);
            badgeImageListBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getBadgeImageListFieldBuilder() : null;
          } else {
            badgeImageListBuilder_.addAllMessages(other.badgeImageList_);
          }
        }
      }
      if (other.hasFollowInfo()) {
        mergeFollowInfo(other.getFollowInfo());
      }
      if (other.hasPayGrade()) {
        mergePayGrade(other.getPayGrade());
      }
      if (other.hasFansClub()) {
        mergeFansClub(other.getFansClub());
      }
      if (!other.getSpecialId().isEmpty()) {
        specialId_ = other.specialId_;
        bitField0_ |= 0x01000000;
        onChanged();
      }
      if (other.hasAvatarBorder()) {
        mergeAvatarBorder(other.getAvatarBorder());
      }
      if (other.hasMedal()) {
        mergeMedal(other.getMedal());
      }
      if (realTimeIconsListBuilder_ == null) {
        if (!other.realTimeIconsList_.isEmpty()) {
          if (realTimeIconsList_.isEmpty()) {
            realTimeIconsList_ = other.realTimeIconsList_;
            bitField0_ = (bitField0_ & ~0x08000000);
          } else {
            ensureRealTimeIconsListIsMutable();
            realTimeIconsList_.addAll(other.realTimeIconsList_);
          }
          onChanged();
        }
      } else {
        if (!other.realTimeIconsList_.isEmpty()) {
          if (realTimeIconsListBuilder_.isEmpty()) {
            realTimeIconsListBuilder_.dispose();
            realTimeIconsListBuilder_ = null;
            realTimeIconsList_ = other.realTimeIconsList_;
            bitField0_ = (bitField0_ & ~0x08000000);
            realTimeIconsListBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getRealTimeIconsListFieldBuilder() : null;
          } else {
            realTimeIconsListBuilder_.addAllMessages(other.realTimeIconsList_);
          }
        }
      }
      if (!other.getDisplayId().isEmpty()) {
        displayId_ = other.displayId_;
        bitField0_ |= 0x10000000;
        onChanged();
      }
      if (!other.getSecUid().isEmpty()) {
        secUid_ = other.secUid_;
        bitField0_ |= 0x20000000;
        onChanged();
      }
      if (other.getFanTicketCount() != 0L) {
        setFanTicketCount(other.getFanTicketCount());
      }
      if (!other.getIdStr().isEmpty()) {
        idStr_ = other.idStr_;
        bitField0_ |= 0x80000000;
        onChanged();
      }
      if (other.getAgeRange() != 0) {
        setAgeRange(other.getAgeRange());
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }

    @Override
    public final boolean isInitialized() {
      return true;
    }

    @Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              id_ = input.readUInt64();
              bitField0_ |= 0x00000001;
              break;
            } // case 8
            case 16: {
              shortId_ = input.readUInt64();
              bitField0_ |= 0x00000002;
              break;
            } // case 16
            case 26: {
              nickName_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000004;
              break;
            } // case 26
            case 32: {
              gender_ = input.readUInt32();
              bitField0_ |= 0x00000008;
              break;
            } // case 32
            case 42: {
              signature_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000010;
              break;
            } // case 42
            case 48: {
              level_ = input.readUInt32();
              bitField0_ |= 0x00000020;
              break;
            } // case 48
            case 56: {
              birthday_ = input.readUInt64();
              bitField0_ |= 0x00000040;
              break;
            } // case 56
            case 66: {
              telephone_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00000080;
              break;
            } // case 66
            case 74: {
              input.readMessage(
                  getAvatarThumbFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000100;
              break;
            } // case 74
            case 82: {
              input.readMessage(
                  getAvatarMediumFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000200;
              break;
            } // case 82
            case 90: {
              input.readMessage(
                  getAvatarLargeFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00000400;
              break;
            } // case 90
            case 96: {
              verified_ = input.readBool();
              bitField0_ |= 0x00000800;
              break;
            } // case 96
            case 104: {
              experience_ = input.readUInt32();
              bitField0_ |= 0x00001000;
              break;
            } // case 104
            case 114: {
              city_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00002000;
              break;
            } // case 114
            case 120: {
              status_ = input.readInt32();
              bitField0_ |= 0x00004000;
              break;
            } // case 120
            case 128: {
              createTime_ = input.readUInt64();
              bitField0_ |= 0x00008000;
              break;
            } // case 128
            case 136: {
              modifyTime_ = input.readUInt64();
              bitField0_ |= 0x00010000;
              break;
            } // case 136
            case 144: {
              secret_ = input.readUInt32();
              bitField0_ |= 0x00020000;
              break;
            } // case 144
            case 154: {
              shareQrcodeUri_ = input.readStringRequireUtf8();
              bitField0_ |= 0x00040000;
              break;
            } // case 154
            case 160: {
              incomeSharePercent_ = input.readUInt32();
              bitField0_ |= 0x00080000;
              break;
            } // case 160
            case 170: {
              Image m =
                  input.readMessage(
                      Image.parser(),
                      extensionRegistry);
              if (badgeImageListBuilder_ == null) {
                ensureBadgeImageListIsMutable();
                badgeImageList_.add(m);
              } else {
                badgeImageListBuilder_.addMessage(m);
              }
              break;
            } // case 170
            case 178: {
              input.readMessage(
                  getFollowInfoFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00200000;
              break;
            } // case 178
            case 186: {
              input.readMessage(
                  getPayGradeFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00400000;
              break;
            } // case 186
            case 194: {
              input.readMessage(
                  getFansClubFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x00800000;
              break;
            } // case 194
            case 210: {
              specialId_ = input.readStringRequireUtf8();
              bitField0_ |= 0x01000000;
              break;
            } // case 210
            case 218: {
              input.readMessage(
                  getAvatarBorderFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x02000000;
              break;
            } // case 218
            case 226: {
              input.readMessage(
                  getMedalFieldBuilder().getBuilder(),
                  extensionRegistry);
              bitField0_ |= 0x04000000;
              break;
            } // case 226
            case 234: {
              Image m =
                  input.readMessage(
                      Image.parser(),
                      extensionRegistry);
              if (realTimeIconsListBuilder_ == null) {
                ensureRealTimeIconsListIsMutable();
                realTimeIconsList_.add(m);
              } else {
                realTimeIconsListBuilder_.addMessage(m);
              }
              break;
            } // case 234
            case 306: {
              displayId_ = input.readStringRequireUtf8();
              bitField0_ |= 0x10000000;
              break;
            } // case 306
            case 370: {
              secUid_ = input.readStringRequireUtf8();
              bitField0_ |= 0x20000000;
              break;
            } // case 370
            case 8176: {
              fanTicketCount_ = input.readUInt64();
              bitField0_ |= 0x40000000;
              break;
            } // case 8176
            case 8226: {
              idStr_ = input.readStringRequireUtf8();
              bitField0_ |= 0x80000000;
              break;
            } // case 8226
            case 8360: {
              ageRange_ = input.readUInt32();
              bitField1_ |= 0x00000001;
              break;
            } // case 8360
            default: {
              if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                done = true; // was an endgroup tag
              }
              break;
            } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }
    private int bitField0_;
    private int bitField1_;

    private long id_ ;
    /**
     * <code>uint64 id = 1;</code>
     * @return The id.
     */
    @Override
    public long getId() {
      return id_;
    }
    /**
     * <code>uint64 id = 1;</code>
     * @param value The id to set.
     * @return This builder for chaining.
     */
    public Builder setId(long value) {

      id_ = value;
      bitField0_ |= 0x00000001;
      onChanged();
      return this;
    }
    /**
     * <code>uint64 id = 1;</code>
     * @return This builder for chaining.
     */
    public Builder clearId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      id_ = 0L;
      onChanged();
      return this;
    }

    private long shortId_ ;
    /**
     * <code>uint64 shortId = 2;</code>
     * @return The shortId.
     */
    @Override
    public long getShortId() {
      return shortId_;
    }
    /**
     * <code>uint64 shortId = 2;</code>
     * @param value The shortId to set.
     * @return This builder for chaining.
     */
    public Builder setShortId(long value) {

      shortId_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }
    /**
     * <code>uint64 shortId = 2;</code>
     * @return This builder for chaining.
     */
    public Builder clearShortId() {
      bitField0_ = (bitField0_ & ~0x00000002);
      shortId_ = 0L;
      onChanged();
      return this;
    }

    private Object nickName_ = "";
    /**
     * <code>string nickName = 3;</code>
     * @return The nickName.
     */
    public String getNickName() {
      Object ref = nickName_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        nickName_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string nickName = 3;</code>
     * @return The bytes for nickName.
     */
    public com.google.protobuf.ByteString
        getNickNameBytes() {
      Object ref = nickName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        nickName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string nickName = 3;</code>
     * @param value The nickName to set.
     * @return This builder for chaining.
     */
    public Builder setNickName(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      nickName_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     * <code>string nickName = 3;</code>
     * @return This builder for chaining.
     */
    public Builder clearNickName() {
      nickName_ = getDefaultInstance().getNickName();
      bitField0_ = (bitField0_ & ~0x00000004);
      onChanged();
      return this;
    }
    /**
     * <code>string nickName = 3;</code>
     * @param value The bytes for nickName to set.
     * @return This builder for chaining.
     */
    public Builder setNickNameBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      nickName_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }

    private int gender_ ;
    /**
     * <code>uint32 gender = 4;</code>
     * @return The gender.
     */
    @Override
    public int getGender() {
      return gender_;
    }
    /**
     * <code>uint32 gender = 4;</code>
     * @param value The gender to set.
     * @return This builder for chaining.
     */
    public Builder setGender(int value) {

      gender_ = value;
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 gender = 4;</code>
     * @return This builder for chaining.
     */
    public Builder clearGender() {
      bitField0_ = (bitField0_ & ~0x00000008);
      gender_ = 0;
      onChanged();
      return this;
    }

    private Object signature_ = "";
    /**
     * <code>string Signature = 5;</code>
     * @return The signature.
     */
    public String getSignature() {
      Object ref = signature_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        signature_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string Signature = 5;</code>
     * @return The bytes for signature.
     */
    public com.google.protobuf.ByteString
        getSignatureBytes() {
      Object ref = signature_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        signature_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string Signature = 5;</code>
     * @param value The signature to set.
     * @return This builder for chaining.
     */
    public Builder setSignature(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      signature_ = value;
      bitField0_ |= 0x00000010;
      onChanged();
      return this;
    }
    /**
     * <code>string Signature = 5;</code>
     * @return This builder for chaining.
     */
    public Builder clearSignature() {
      signature_ = getDefaultInstance().getSignature();
      bitField0_ = (bitField0_ & ~0x00000010);
      onChanged();
      return this;
    }
    /**
     * <code>string Signature = 5;</code>
     * @param value The bytes for signature to set.
     * @return This builder for chaining.
     */
    public Builder setSignatureBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      signature_ = value;
      bitField0_ |= 0x00000010;
      onChanged();
      return this;
    }

    private int level_ ;
    /**
     * <code>uint32 Level = 6;</code>
     * @return The level.
     */
    @Override
    public int getLevel() {
      return level_;
    }
    /**
     * <code>uint32 Level = 6;</code>
     * @param value The level to set.
     * @return This builder for chaining.
     */
    public Builder setLevel(int value) {

      level_ = value;
      bitField0_ |= 0x00000020;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 Level = 6;</code>
     * @return This builder for chaining.
     */
    public Builder clearLevel() {
      bitField0_ = (bitField0_ & ~0x00000020);
      level_ = 0;
      onChanged();
      return this;
    }

    private long birthday_ ;
    /**
     * <code>uint64 Birthday = 7;</code>
     * @return The birthday.
     */
    @Override
    public long getBirthday() {
      return birthday_;
    }
    /**
     * <code>uint64 Birthday = 7;</code>
     * @param value The birthday to set.
     * @return This builder for chaining.
     */
    public Builder setBirthday(long value) {

      birthday_ = value;
      bitField0_ |= 0x00000040;
      onChanged();
      return this;
    }
    /**
     * <code>uint64 Birthday = 7;</code>
     * @return This builder for chaining.
     */
    public Builder clearBirthday() {
      bitField0_ = (bitField0_ & ~0x00000040);
      birthday_ = 0L;
      onChanged();
      return this;
    }

    private Object telephone_ = "";
    /**
     * <code>string Telephone = 8;</code>
     * @return The telephone.
     */
    public String getTelephone() {
      Object ref = telephone_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        telephone_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string Telephone = 8;</code>
     * @return The bytes for telephone.
     */
    public com.google.protobuf.ByteString
        getTelephoneBytes() {
      Object ref = telephone_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        telephone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string Telephone = 8;</code>
     * @param value The telephone to set.
     * @return This builder for chaining.
     */
    public Builder setTelephone(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      telephone_ = value;
      bitField0_ |= 0x00000080;
      onChanged();
      return this;
    }
    /**
     * <code>string Telephone = 8;</code>
     * @return This builder for chaining.
     */
    public Builder clearTelephone() {
      telephone_ = getDefaultInstance().getTelephone();
      bitField0_ = (bitField0_ & ~0x00000080);
      onChanged();
      return this;
    }
    /**
     * <code>string Telephone = 8;</code>
     * @param value The bytes for telephone to set.
     * @return This builder for chaining.
     */
    public Builder setTelephoneBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      telephone_ = value;
      bitField0_ |= 0x00000080;
      onChanged();
      return this;
    }

    private Image avatarThumb_;
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder> avatarThumbBuilder_;
    /**
     * <code>.Image AvatarThumb = 9;</code>
     * @return Whether the avatarThumb field is set.
     */
    public boolean hasAvatarThumb() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     * @return The avatarThumb.
     */
    public Image getAvatarThumb() {
      if (avatarThumbBuilder_ == null) {
        return avatarThumb_ == null ? Image.getDefaultInstance() : avatarThumb_;
      } else {
        return avatarThumbBuilder_.getMessage();
      }
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     */
    public Builder setAvatarThumb(Image value) {
      if (avatarThumbBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarThumb_ = value;
      } else {
        avatarThumbBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000100;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     */
    public Builder setAvatarThumb(
        Image.Builder builderForValue) {
      if (avatarThumbBuilder_ == null) {
        avatarThumb_ = builderForValue.build();
      } else {
        avatarThumbBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000100;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     */
    public Builder mergeAvatarThumb(Image value) {
      if (avatarThumbBuilder_ == null) {
        if (((bitField0_ & 0x00000100) != 0) &&
          avatarThumb_ != null &&
          avatarThumb_ != Image.getDefaultInstance()) {
          getAvatarThumbBuilder().mergeFrom(value);
        } else {
          avatarThumb_ = value;
        }
      } else {
        avatarThumbBuilder_.mergeFrom(value);
      }
      if (avatarThumb_ != null) {
        bitField0_ |= 0x00000100;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     */
    public Builder clearAvatarThumb() {
      bitField0_ = (bitField0_ & ~0x00000100);
      avatarThumb_ = null;
      if (avatarThumbBuilder_ != null) {
        avatarThumbBuilder_.dispose();
        avatarThumbBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     */
    public Image.Builder getAvatarThumbBuilder() {
      bitField0_ |= 0x00000100;
      onChanged();
      return getAvatarThumbFieldBuilder().getBuilder();
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     */
    public ImageOrBuilder getAvatarThumbOrBuilder() {
      if (avatarThumbBuilder_ != null) {
        return avatarThumbBuilder_.getMessageOrBuilder();
      } else {
        return avatarThumb_ == null ?
            Image.getDefaultInstance() : avatarThumb_;
      }
    }
    /**
     * <code>.Image AvatarThumb = 9;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder>
        getAvatarThumbFieldBuilder() {
      if (avatarThumbBuilder_ == null) {
        avatarThumbBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            Image, Image.Builder, ImageOrBuilder>(
                getAvatarThumb(),
                getParentForChildren(),
                isClean());
        avatarThumb_ = null;
      }
      return avatarThumbBuilder_;
    }

    private Image avatarMedium_;
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder> avatarMediumBuilder_;
    /**
     * <code>.Image AvatarMedium = 10;</code>
     * @return Whether the avatarMedium field is set.
     */
    public boolean hasAvatarMedium() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     * @return The avatarMedium.
     */
    public Image getAvatarMedium() {
      if (avatarMediumBuilder_ == null) {
        return avatarMedium_ == null ? Image.getDefaultInstance() : avatarMedium_;
      } else {
        return avatarMediumBuilder_.getMessage();
      }
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     */
    public Builder setAvatarMedium(Image value) {
      if (avatarMediumBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarMedium_ = value;
      } else {
        avatarMediumBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000200;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     */
    public Builder setAvatarMedium(
        Image.Builder builderForValue) {
      if (avatarMediumBuilder_ == null) {
        avatarMedium_ = builderForValue.build();
      } else {
        avatarMediumBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000200;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     */
    public Builder mergeAvatarMedium(Image value) {
      if (avatarMediumBuilder_ == null) {
        if (((bitField0_ & 0x00000200) != 0) &&
          avatarMedium_ != null &&
          avatarMedium_ != Image.getDefaultInstance()) {
          getAvatarMediumBuilder().mergeFrom(value);
        } else {
          avatarMedium_ = value;
        }
      } else {
        avatarMediumBuilder_.mergeFrom(value);
      }
      if (avatarMedium_ != null) {
        bitField0_ |= 0x00000200;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     */
    public Builder clearAvatarMedium() {
      bitField0_ = (bitField0_ & ~0x00000200);
      avatarMedium_ = null;
      if (avatarMediumBuilder_ != null) {
        avatarMediumBuilder_.dispose();
        avatarMediumBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     */
    public Image.Builder getAvatarMediumBuilder() {
      bitField0_ |= 0x00000200;
      onChanged();
      return getAvatarMediumFieldBuilder().getBuilder();
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     */
    public ImageOrBuilder getAvatarMediumOrBuilder() {
      if (avatarMediumBuilder_ != null) {
        return avatarMediumBuilder_.getMessageOrBuilder();
      } else {
        return avatarMedium_ == null ?
            Image.getDefaultInstance() : avatarMedium_;
      }
    }
    /**
     * <code>.Image AvatarMedium = 10;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder>
        getAvatarMediumFieldBuilder() {
      if (avatarMediumBuilder_ == null) {
        avatarMediumBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            Image, Image.Builder, ImageOrBuilder>(
                getAvatarMedium(),
                getParentForChildren(),
                isClean());
        avatarMedium_ = null;
      }
      return avatarMediumBuilder_;
    }

    private Image avatarLarge_;
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder> avatarLargeBuilder_;
    /**
     * <code>.Image AvatarLarge = 11;</code>
     * @return Whether the avatarLarge field is set.
     */
    public boolean hasAvatarLarge() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     * @return The avatarLarge.
     */
    public Image getAvatarLarge() {
      if (avatarLargeBuilder_ == null) {
        return avatarLarge_ == null ? Image.getDefaultInstance() : avatarLarge_;
      } else {
        return avatarLargeBuilder_.getMessage();
      }
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     */
    public Builder setAvatarLarge(Image value) {
      if (avatarLargeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarLarge_ = value;
      } else {
        avatarLargeBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000400;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     */
    public Builder setAvatarLarge(
        Image.Builder builderForValue) {
      if (avatarLargeBuilder_ == null) {
        avatarLarge_ = builderForValue.build();
      } else {
        avatarLargeBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000400;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     */
    public Builder mergeAvatarLarge(Image value) {
      if (avatarLargeBuilder_ == null) {
        if (((bitField0_ & 0x00000400) != 0) &&
          avatarLarge_ != null &&
          avatarLarge_ != Image.getDefaultInstance()) {
          getAvatarLargeBuilder().mergeFrom(value);
        } else {
          avatarLarge_ = value;
        }
      } else {
        avatarLargeBuilder_.mergeFrom(value);
      }
      if (avatarLarge_ != null) {
        bitField0_ |= 0x00000400;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     */
    public Builder clearAvatarLarge() {
      bitField0_ = (bitField0_ & ~0x00000400);
      avatarLarge_ = null;
      if (avatarLargeBuilder_ != null) {
        avatarLargeBuilder_.dispose();
        avatarLargeBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     */
    public Image.Builder getAvatarLargeBuilder() {
      bitField0_ |= 0x00000400;
      onChanged();
      return getAvatarLargeFieldBuilder().getBuilder();
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     */
    public ImageOrBuilder getAvatarLargeOrBuilder() {
      if (avatarLargeBuilder_ != null) {
        return avatarLargeBuilder_.getMessageOrBuilder();
      } else {
        return avatarLarge_ == null ?
            Image.getDefaultInstance() : avatarLarge_;
      }
    }
    /**
     * <code>.Image AvatarLarge = 11;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder>
        getAvatarLargeFieldBuilder() {
      if (avatarLargeBuilder_ == null) {
        avatarLargeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            Image, Image.Builder, ImageOrBuilder>(
                getAvatarLarge(),
                getParentForChildren(),
                isClean());
        avatarLarge_ = null;
      }
      return avatarLargeBuilder_;
    }

    private boolean verified_ ;
    /**
     * <code>bool Verified = 12;</code>
     * @return The verified.
     */
    @Override
    public boolean getVerified() {
      return verified_;
    }
    /**
     * <code>bool Verified = 12;</code>
     * @param value The verified to set.
     * @return This builder for chaining.
     */
    public Builder setVerified(boolean value) {

      verified_ = value;
      bitField0_ |= 0x00000800;
      onChanged();
      return this;
    }
    /**
     * <code>bool Verified = 12;</code>
     * @return This builder for chaining.
     */
    public Builder clearVerified() {
      bitField0_ = (bitField0_ & ~0x00000800);
      verified_ = false;
      onChanged();
      return this;
    }

    private int experience_ ;
    /**
     * <code>uint32 Experience = 13;</code>
     * @return The experience.
     */
    @Override
    public int getExperience() {
      return experience_;
    }
    /**
     * <code>uint32 Experience = 13;</code>
     * @param value The experience to set.
     * @return This builder for chaining.
     */
    public Builder setExperience(int value) {

      experience_ = value;
      bitField0_ |= 0x00001000;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 Experience = 13;</code>
     * @return This builder for chaining.
     */
    public Builder clearExperience() {
      bitField0_ = (bitField0_ & ~0x00001000);
      experience_ = 0;
      onChanged();
      return this;
    }

    private Object city_ = "";
    /**
     * <code>string city = 14;</code>
     * @return The city.
     */
    public String getCity() {
      Object ref = city_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        city_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string city = 14;</code>
     * @return The bytes for city.
     */
    public com.google.protobuf.ByteString
        getCityBytes() {
      Object ref = city_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        city_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string city = 14;</code>
     * @param value The city to set.
     * @return This builder for chaining.
     */
    public Builder setCity(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      city_ = value;
      bitField0_ |= 0x00002000;
      onChanged();
      return this;
    }
    /**
     * <code>string city = 14;</code>
     * @return This builder for chaining.
     */
    public Builder clearCity() {
      city_ = getDefaultInstance().getCity();
      bitField0_ = (bitField0_ & ~0x00002000);
      onChanged();
      return this;
    }
    /**
     * <code>string city = 14;</code>
     * @param value The bytes for city to set.
     * @return This builder for chaining.
     */
    public Builder setCityBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      city_ = value;
      bitField0_ |= 0x00002000;
      onChanged();
      return this;
    }

    private int status_ ;
    /**
     * <code>int32 Status = 15;</code>
     * @return The status.
     */
    @Override
    public int getStatus() {
      return status_;
    }
    /**
     * <code>int32 Status = 15;</code>
     * @param value The status to set.
     * @return This builder for chaining.
     */
    public Builder setStatus(int value) {

      status_ = value;
      bitField0_ |= 0x00004000;
      onChanged();
      return this;
    }
    /**
     * <code>int32 Status = 15;</code>
     * @return This builder for chaining.
     */
    public Builder clearStatus() {
      bitField0_ = (bitField0_ & ~0x00004000);
      status_ = 0;
      onChanged();
      return this;
    }

    private long createTime_ ;
    /**
     * <code>uint64 CreateTime = 16;</code>
     * @return The createTime.
     */
    @Override
    public long getCreateTime() {
      return createTime_;
    }
    /**
     * <code>uint64 CreateTime = 16;</code>
     * @param value The createTime to set.
     * @return This builder for chaining.
     */
    public Builder setCreateTime(long value) {

      createTime_ = value;
      bitField0_ |= 0x00008000;
      onChanged();
      return this;
    }
    /**
     * <code>uint64 CreateTime = 16;</code>
     * @return This builder for chaining.
     */
    public Builder clearCreateTime() {
      bitField0_ = (bitField0_ & ~0x00008000);
      createTime_ = 0L;
      onChanged();
      return this;
    }

    private long modifyTime_ ;
    /**
     * <code>uint64 ModifyTime = 17;</code>
     * @return The modifyTime.
     */
    @Override
    public long getModifyTime() {
      return modifyTime_;
    }
    /**
     * <code>uint64 ModifyTime = 17;</code>
     * @param value The modifyTime to set.
     * @return This builder for chaining.
     */
    public Builder setModifyTime(long value) {

      modifyTime_ = value;
      bitField0_ |= 0x00010000;
      onChanged();
      return this;
    }
    /**
     * <code>uint64 ModifyTime = 17;</code>
     * @return This builder for chaining.
     */
    public Builder clearModifyTime() {
      bitField0_ = (bitField0_ & ~0x00010000);
      modifyTime_ = 0L;
      onChanged();
      return this;
    }

    private int secret_ ;
    /**
     * <code>uint32 Secret = 18;</code>
     * @return The secret.
     */
    @Override
    public int getSecret() {
      return secret_;
    }
    /**
     * <code>uint32 Secret = 18;</code>
     * @param value The secret to set.
     * @return This builder for chaining.
     */
    public Builder setSecret(int value) {

      secret_ = value;
      bitField0_ |= 0x00020000;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 Secret = 18;</code>
     * @return This builder for chaining.
     */
    public Builder clearSecret() {
      bitField0_ = (bitField0_ & ~0x00020000);
      secret_ = 0;
      onChanged();
      return this;
    }

    private Object shareQrcodeUri_ = "";
    /**
     * <code>string ShareQrcodeUri = 19;</code>
     * @return The shareQrcodeUri.
     */
    public String getShareQrcodeUri() {
      Object ref = shareQrcodeUri_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        shareQrcodeUri_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string ShareQrcodeUri = 19;</code>
     * @return The bytes for shareQrcodeUri.
     */
    public com.google.protobuf.ByteString
        getShareQrcodeUriBytes() {
      Object ref = shareQrcodeUri_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        shareQrcodeUri_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string ShareQrcodeUri = 19;</code>
     * @param value The shareQrcodeUri to set.
     * @return This builder for chaining.
     */
    public Builder setShareQrcodeUri(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      shareQrcodeUri_ = value;
      bitField0_ |= 0x00040000;
      onChanged();
      return this;
    }
    /**
     * <code>string ShareQrcodeUri = 19;</code>
     * @return This builder for chaining.
     */
    public Builder clearShareQrcodeUri() {
      shareQrcodeUri_ = getDefaultInstance().getShareQrcodeUri();
      bitField0_ = (bitField0_ & ~0x00040000);
      onChanged();
      return this;
    }
    /**
     * <code>string ShareQrcodeUri = 19;</code>
     * @param value The bytes for shareQrcodeUri to set.
     * @return This builder for chaining.
     */
    public Builder setShareQrcodeUriBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      shareQrcodeUri_ = value;
      bitField0_ |= 0x00040000;
      onChanged();
      return this;
    }

    private int incomeSharePercent_ ;
    /**
     * <code>uint32 IncomeSharePercent = 20;</code>
     * @return The incomeSharePercent.
     */
    @Override
    public int getIncomeSharePercent() {
      return incomeSharePercent_;
    }
    /**
     * <code>uint32 IncomeSharePercent = 20;</code>
     * @param value The incomeSharePercent to set.
     * @return This builder for chaining.
     */
    public Builder setIncomeSharePercent(int value) {

      incomeSharePercent_ = value;
      bitField0_ |= 0x00080000;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 IncomeSharePercent = 20;</code>
     * @return This builder for chaining.
     */
    public Builder clearIncomeSharePercent() {
      bitField0_ = (bitField0_ & ~0x00080000);
      incomeSharePercent_ = 0;
      onChanged();
      return this;
    }

    private java.util.List<Image> badgeImageList_ =
      java.util.Collections.emptyList();
    private void ensureBadgeImageListIsMutable() {
      if (!((bitField0_ & 0x00100000) != 0)) {
        badgeImageList_ = new java.util.ArrayList<Image>(badgeImageList_);
        bitField0_ |= 0x00100000;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder> badgeImageListBuilder_;

    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public java.util.List<Image> getBadgeImageListList() {
      if (badgeImageListBuilder_ == null) {
        return java.util.Collections.unmodifiableList(badgeImageList_);
      } else {
        return badgeImageListBuilder_.getMessageList();
      }
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public int getBadgeImageListCount() {
      if (badgeImageListBuilder_ == null) {
        return badgeImageList_.size();
      } else {
        return badgeImageListBuilder_.getCount();
      }
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Image getBadgeImageList(int index) {
      if (badgeImageListBuilder_ == null) {
        return badgeImageList_.get(index);
      } else {
        return badgeImageListBuilder_.getMessage(index);
      }
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder setBadgeImageList(
        int index, Image value) {
      if (badgeImageListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBadgeImageListIsMutable();
        badgeImageList_.set(index, value);
        onChanged();
      } else {
        badgeImageListBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder setBadgeImageList(
        int index, Image.Builder builderForValue) {
      if (badgeImageListBuilder_ == null) {
        ensureBadgeImageListIsMutable();
        badgeImageList_.set(index, builderForValue.build());
        onChanged();
      } else {
        badgeImageListBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder addBadgeImageList(Image value) {
      if (badgeImageListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBadgeImageListIsMutable();
        badgeImageList_.add(value);
        onChanged();
      } else {
        badgeImageListBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder addBadgeImageList(
        int index, Image value) {
      if (badgeImageListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBadgeImageListIsMutable();
        badgeImageList_.add(index, value);
        onChanged();
      } else {
        badgeImageListBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder addBadgeImageList(
        Image.Builder builderForValue) {
      if (badgeImageListBuilder_ == null) {
        ensureBadgeImageListIsMutable();
        badgeImageList_.add(builderForValue.build());
        onChanged();
      } else {
        badgeImageListBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder addBadgeImageList(
        int index, Image.Builder builderForValue) {
      if (badgeImageListBuilder_ == null) {
        ensureBadgeImageListIsMutable();
        badgeImageList_.add(index, builderForValue.build());
        onChanged();
      } else {
        badgeImageListBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder addAllBadgeImageList(
        Iterable<? extends Image> values) {
      if (badgeImageListBuilder_ == null) {
        ensureBadgeImageListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, badgeImageList_);
        onChanged();
      } else {
        badgeImageListBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder clearBadgeImageList() {
      if (badgeImageListBuilder_ == null) {
        badgeImageList_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00100000);
        onChanged();
      } else {
        badgeImageListBuilder_.clear();
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Builder removeBadgeImageList(int index) {
      if (badgeImageListBuilder_ == null) {
        ensureBadgeImageListIsMutable();
        badgeImageList_.remove(index);
        onChanged();
      } else {
        badgeImageListBuilder_.remove(index);
      }
      return this;
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Image.Builder getBadgeImageListBuilder(
        int index) {
      return getBadgeImageListFieldBuilder().getBuilder(index);
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public ImageOrBuilder getBadgeImageListOrBuilder(
        int index) {
      if (badgeImageListBuilder_ == null) {
        return badgeImageList_.get(index);  } else {
        return badgeImageListBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public java.util.List<? extends ImageOrBuilder>
         getBadgeImageListOrBuilderList() {
      if (badgeImageListBuilder_ != null) {
        return badgeImageListBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(badgeImageList_);
      }
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Image.Builder addBadgeImageListBuilder() {
      return getBadgeImageListFieldBuilder().addBuilder(
          Image.getDefaultInstance());
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public Image.Builder addBadgeImageListBuilder(
        int index) {
      return getBadgeImageListFieldBuilder().addBuilder(
          index, Image.getDefaultInstance());
    }
    /**
     * <code>repeated .Image BadgeImageList = 21;</code>
     */
    public java.util.List<Image.Builder>
         getBadgeImageListBuilderList() {
      return getBadgeImageListFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder>
        getBadgeImageListFieldBuilder() {
      if (badgeImageListBuilder_ == null) {
        badgeImageListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            Image, Image.Builder, ImageOrBuilder>(
                badgeImageList_,
                ((bitField0_ & 0x00100000) != 0),
                getParentForChildren(),
                isClean());
        badgeImageList_ = null;
      }
      return badgeImageListBuilder_;
    }

    private FollowInfo followInfo_;
    private com.google.protobuf.SingleFieldBuilderV3<
        FollowInfo, FollowInfo.Builder, FollowInfoOrBuilder> followInfoBuilder_;
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     * @return Whether the followInfo field is set.
     */
    public boolean hasFollowInfo() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     * @return The followInfo.
     */
    public FollowInfo getFollowInfo() {
      if (followInfoBuilder_ == null) {
        return followInfo_ == null ? FollowInfo.getDefaultInstance() : followInfo_;
      } else {
        return followInfoBuilder_.getMessage();
      }
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     */
    public Builder setFollowInfo(FollowInfo value) {
      if (followInfoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        followInfo_ = value;
      } else {
        followInfoBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00200000;
      onChanged();
      return this;
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     */
    public Builder setFollowInfo(
        FollowInfo.Builder builderForValue) {
      if (followInfoBuilder_ == null) {
        followInfo_ = builderForValue.build();
      } else {
        followInfoBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00200000;
      onChanged();
      return this;
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     */
    public Builder mergeFollowInfo(FollowInfo value) {
      if (followInfoBuilder_ == null) {
        if (((bitField0_ & 0x00200000) != 0) &&
          followInfo_ != null &&
          followInfo_ != FollowInfo.getDefaultInstance()) {
          getFollowInfoBuilder().mergeFrom(value);
        } else {
          followInfo_ = value;
        }
      } else {
        followInfoBuilder_.mergeFrom(value);
      }
      if (followInfo_ != null) {
        bitField0_ |= 0x00200000;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     */
    public Builder clearFollowInfo() {
      bitField0_ = (bitField0_ & ~0x00200000);
      followInfo_ = null;
      if (followInfoBuilder_ != null) {
        followInfoBuilder_.dispose();
        followInfoBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     */
    public FollowInfo.Builder getFollowInfoBuilder() {
      bitField0_ |= 0x00200000;
      onChanged();
      return getFollowInfoFieldBuilder().getBuilder();
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     */
    public FollowInfoOrBuilder getFollowInfoOrBuilder() {
      if (followInfoBuilder_ != null) {
        return followInfoBuilder_.getMessageOrBuilder();
      } else {
        return followInfo_ == null ?
            FollowInfo.getDefaultInstance() : followInfo_;
      }
    }
    /**
     * <code>.FollowInfo FollowInfo = 22;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        FollowInfo, FollowInfo.Builder, FollowInfoOrBuilder>
        getFollowInfoFieldBuilder() {
      if (followInfoBuilder_ == null) {
        followInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            FollowInfo, FollowInfo.Builder, FollowInfoOrBuilder>(
                getFollowInfo(),
                getParentForChildren(),
                isClean());
        followInfo_ = null;
      }
      return followInfoBuilder_;
    }

    private PayGrade payGrade_;
    private com.google.protobuf.SingleFieldBuilderV3<
        PayGrade, PayGrade.Builder, PayGradeOrBuilder> payGradeBuilder_;
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     * @return Whether the payGrade field is set.
     */
    public boolean hasPayGrade() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     * @return The payGrade.
     */
    public PayGrade getPayGrade() {
      if (payGradeBuilder_ == null) {
        return payGrade_ == null ? PayGrade.getDefaultInstance() : payGrade_;
      } else {
        return payGradeBuilder_.getMessage();
      }
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     */
    public Builder setPayGrade(PayGrade value) {
      if (payGradeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        payGrade_ = value;
      } else {
        payGradeBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00400000;
      onChanged();
      return this;
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     */
    public Builder setPayGrade(
        PayGrade.Builder builderForValue) {
      if (payGradeBuilder_ == null) {
        payGrade_ = builderForValue.build();
      } else {
        payGradeBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00400000;
      onChanged();
      return this;
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     */
    public Builder mergePayGrade(PayGrade value) {
      if (payGradeBuilder_ == null) {
        if (((bitField0_ & 0x00400000) != 0) &&
          payGrade_ != null &&
          payGrade_ != PayGrade.getDefaultInstance()) {
          getPayGradeBuilder().mergeFrom(value);
        } else {
          payGrade_ = value;
        }
      } else {
        payGradeBuilder_.mergeFrom(value);
      }
      if (payGrade_ != null) {
        bitField0_ |= 0x00400000;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     */
    public Builder clearPayGrade() {
      bitField0_ = (bitField0_ & ~0x00400000);
      payGrade_ = null;
      if (payGradeBuilder_ != null) {
        payGradeBuilder_.dispose();
        payGradeBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     */
    public PayGrade.Builder getPayGradeBuilder() {
      bitField0_ |= 0x00400000;
      onChanged();
      return getPayGradeFieldBuilder().getBuilder();
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     */
    public PayGradeOrBuilder getPayGradeOrBuilder() {
      if (payGradeBuilder_ != null) {
        return payGradeBuilder_.getMessageOrBuilder();
      } else {
        return payGrade_ == null ?
            PayGrade.getDefaultInstance() : payGrade_;
      }
    }
    /**
     * <code>.PayGrade PayGrade = 23;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        PayGrade, PayGrade.Builder, PayGradeOrBuilder>
        getPayGradeFieldBuilder() {
      if (payGradeBuilder_ == null) {
        payGradeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            PayGrade, PayGrade.Builder, PayGradeOrBuilder>(
                getPayGrade(),
                getParentForChildren(),
                isClean());
        payGrade_ = null;
      }
      return payGradeBuilder_;
    }

    private FansClub fansClub_;
    private com.google.protobuf.SingleFieldBuilderV3<
        FansClub, FansClub.Builder, FansClubOrBuilder> fansClubBuilder_;
    /**
     * <code>.FansClub FansClub = 24;</code>
     * @return Whether the fansClub field is set.
     */
    public boolean hasFansClub() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     * @return The fansClub.
     */
    public FansClub getFansClub() {
      if (fansClubBuilder_ == null) {
        return fansClub_ == null ? FansClub.getDefaultInstance() : fansClub_;
      } else {
        return fansClubBuilder_.getMessage();
      }
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     */
    public Builder setFansClub(FansClub value) {
      if (fansClubBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        fansClub_ = value;
      } else {
        fansClubBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00800000;
      onChanged();
      return this;
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     */
    public Builder setFansClub(
        FansClub.Builder builderForValue) {
      if (fansClubBuilder_ == null) {
        fansClub_ = builderForValue.build();
      } else {
        fansClubBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00800000;
      onChanged();
      return this;
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     */
    public Builder mergeFansClub(FansClub value) {
      if (fansClubBuilder_ == null) {
        if (((bitField0_ & 0x00800000) != 0) &&
          fansClub_ != null &&
          fansClub_ != FansClub.getDefaultInstance()) {
          getFansClubBuilder().mergeFrom(value);
        } else {
          fansClub_ = value;
        }
      } else {
        fansClubBuilder_.mergeFrom(value);
      }
      if (fansClub_ != null) {
        bitField0_ |= 0x00800000;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     */
    public Builder clearFansClub() {
      bitField0_ = (bitField0_ & ~0x00800000);
      fansClub_ = null;
      if (fansClubBuilder_ != null) {
        fansClubBuilder_.dispose();
        fansClubBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     */
    public FansClub.Builder getFansClubBuilder() {
      bitField0_ |= 0x00800000;
      onChanged();
      return getFansClubFieldBuilder().getBuilder();
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     */
    public FansClubOrBuilder getFansClubOrBuilder() {
      if (fansClubBuilder_ != null) {
        return fansClubBuilder_.getMessageOrBuilder();
      } else {
        return fansClub_ == null ?
            FansClub.getDefaultInstance() : fansClub_;
      }
    }
    /**
     * <code>.FansClub FansClub = 24;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        FansClub, FansClub.Builder, FansClubOrBuilder>
        getFansClubFieldBuilder() {
      if (fansClubBuilder_ == null) {
        fansClubBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            FansClub, FansClub.Builder, FansClubOrBuilder>(
                getFansClub(),
                getParentForChildren(),
                isClean());
        fansClub_ = null;
      }
      return fansClubBuilder_;
    }

    private Object specialId_ = "";
    /**
     * <pre>
     *  Border Border = 25;
     * </pre>
     *
     * <code>string SpecialId = 26;</code>
     * @return The specialId.
     */
    public String getSpecialId() {
      Object ref = specialId_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        specialId_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <pre>
     *  Border Border = 25;
     * </pre>
     *
     * <code>string SpecialId = 26;</code>
     * @return The bytes for specialId.
     */
    public com.google.protobuf.ByteString
        getSpecialIdBytes() {
      Object ref = specialId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        specialId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     *  Border Border = 25;
     * </pre>
     *
     * <code>string SpecialId = 26;</code>
     * @param value The specialId to set.
     * @return This builder for chaining.
     */
    public Builder setSpecialId(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      specialId_ = value;
      bitField0_ |= 0x01000000;
      onChanged();
      return this;
    }
    /**
     * <pre>
     *  Border Border = 25;
     * </pre>
     *
     * <code>string SpecialId = 26;</code>
     * @return This builder for chaining.
     */
    public Builder clearSpecialId() {
      specialId_ = getDefaultInstance().getSpecialId();
      bitField0_ = (bitField0_ & ~0x01000000);
      onChanged();
      return this;
    }
    /**
     * <pre>
     *  Border Border = 25;
     * </pre>
     *
     * <code>string SpecialId = 26;</code>
     * @param value The bytes for specialId to set.
     * @return This builder for chaining.
     */
    public Builder setSpecialIdBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      specialId_ = value;
      bitField0_ |= 0x01000000;
      onChanged();
      return this;
    }

    private Image avatarBorder_;
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder> avatarBorderBuilder_;
    /**
     * <code>.Image AvatarBorder = 27;</code>
     * @return Whether the avatarBorder field is set.
     */
    public boolean hasAvatarBorder() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     * @return The avatarBorder.
     */
    public Image getAvatarBorder() {
      if (avatarBorderBuilder_ == null) {
        return avatarBorder_ == null ? Image.getDefaultInstance() : avatarBorder_;
      } else {
        return avatarBorderBuilder_.getMessage();
      }
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     */
    public Builder setAvatarBorder(Image value) {
      if (avatarBorderBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarBorder_ = value;
      } else {
        avatarBorderBuilder_.setMessage(value);
      }
      bitField0_ |= 0x02000000;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     */
    public Builder setAvatarBorder(
        Image.Builder builderForValue) {
      if (avatarBorderBuilder_ == null) {
        avatarBorder_ = builderForValue.build();
      } else {
        avatarBorderBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x02000000;
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     */
    public Builder mergeAvatarBorder(Image value) {
      if (avatarBorderBuilder_ == null) {
        if (((bitField0_ & 0x02000000) != 0) &&
          avatarBorder_ != null &&
          avatarBorder_ != Image.getDefaultInstance()) {
          getAvatarBorderBuilder().mergeFrom(value);
        } else {
          avatarBorder_ = value;
        }
      } else {
        avatarBorderBuilder_.mergeFrom(value);
      }
      if (avatarBorder_ != null) {
        bitField0_ |= 0x02000000;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     */
    public Builder clearAvatarBorder() {
      bitField0_ = (bitField0_ & ~0x02000000);
      avatarBorder_ = null;
      if (avatarBorderBuilder_ != null) {
        avatarBorderBuilder_.dispose();
        avatarBorderBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     */
    public Image.Builder getAvatarBorderBuilder() {
      bitField0_ |= 0x02000000;
      onChanged();
      return getAvatarBorderFieldBuilder().getBuilder();
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     */
    public ImageOrBuilder getAvatarBorderOrBuilder() {
      if (avatarBorderBuilder_ != null) {
        return avatarBorderBuilder_.getMessageOrBuilder();
      } else {
        return avatarBorder_ == null ?
            Image.getDefaultInstance() : avatarBorder_;
      }
    }
    /**
     * <code>.Image AvatarBorder = 27;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder>
        getAvatarBorderFieldBuilder() {
      if (avatarBorderBuilder_ == null) {
        avatarBorderBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            Image, Image.Builder, ImageOrBuilder>(
                getAvatarBorder(),
                getParentForChildren(),
                isClean());
        avatarBorder_ = null;
      }
      return avatarBorderBuilder_;
    }

    private Image medal_;
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder> medalBuilder_;
    /**
     * <code>.Image Medal = 28;</code>
     * @return Whether the medal field is set.
     */
    public boolean hasMedal() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <code>.Image Medal = 28;</code>
     * @return The medal.
     */
    public Image getMedal() {
      if (medalBuilder_ == null) {
        return medal_ == null ? Image.getDefaultInstance() : medal_;
      } else {
        return medalBuilder_.getMessage();
      }
    }
    /**
     * <code>.Image Medal = 28;</code>
     */
    public Builder setMedal(Image value) {
      if (medalBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        medal_ = value;
      } else {
        medalBuilder_.setMessage(value);
      }
      bitField0_ |= 0x04000000;
      onChanged();
      return this;
    }
    /**
     * <code>.Image Medal = 28;</code>
     */
    public Builder setMedal(
        Image.Builder builderForValue) {
      if (medalBuilder_ == null) {
        medal_ = builderForValue.build();
      } else {
        medalBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x04000000;
      onChanged();
      return this;
    }
    /**
     * <code>.Image Medal = 28;</code>
     */
    public Builder mergeMedal(Image value) {
      if (medalBuilder_ == null) {
        if (((bitField0_ & 0x04000000) != 0) &&
          medal_ != null &&
          medal_ != Image.getDefaultInstance()) {
          getMedalBuilder().mergeFrom(value);
        } else {
          medal_ = value;
        }
      } else {
        medalBuilder_.mergeFrom(value);
      }
      if (medal_ != null) {
        bitField0_ |= 0x04000000;
        onChanged();
      }
      return this;
    }
    /**
     * <code>.Image Medal = 28;</code>
     */
    public Builder clearMedal() {
      bitField0_ = (bitField0_ & ~0x04000000);
      medal_ = null;
      if (medalBuilder_ != null) {
        medalBuilder_.dispose();
        medalBuilder_ = null;
      }
      onChanged();
      return this;
    }
    /**
     * <code>.Image Medal = 28;</code>
     */
    public Image.Builder getMedalBuilder() {
      bitField0_ |= 0x04000000;
      onChanged();
      return getMedalFieldBuilder().getBuilder();
    }
    /**
     * <code>.Image Medal = 28;</code>
     */
    public ImageOrBuilder getMedalOrBuilder() {
      if (medalBuilder_ != null) {
        return medalBuilder_.getMessageOrBuilder();
      } else {
        return medal_ == null ?
            Image.getDefaultInstance() : medal_;
      }
    }
    /**
     * <code>.Image Medal = 28;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder>
        getMedalFieldBuilder() {
      if (medalBuilder_ == null) {
        medalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            Image, Image.Builder, ImageOrBuilder>(
                getMedal(),
                getParentForChildren(),
                isClean());
        medal_ = null;
      }
      return medalBuilder_;
    }

    private java.util.List<Image> realTimeIconsList_ =
      java.util.Collections.emptyList();
    private void ensureRealTimeIconsListIsMutable() {
      if (!((bitField0_ & 0x08000000) != 0)) {
        realTimeIconsList_ = new java.util.ArrayList<Image>(realTimeIconsList_);
        bitField0_ |= 0x08000000;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder> realTimeIconsListBuilder_;

    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public java.util.List<Image> getRealTimeIconsListList() {
      if (realTimeIconsListBuilder_ == null) {
        return java.util.Collections.unmodifiableList(realTimeIconsList_);
      } else {
        return realTimeIconsListBuilder_.getMessageList();
      }
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public int getRealTimeIconsListCount() {
      if (realTimeIconsListBuilder_ == null) {
        return realTimeIconsList_.size();
      } else {
        return realTimeIconsListBuilder_.getCount();
      }
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Image getRealTimeIconsList(int index) {
      if (realTimeIconsListBuilder_ == null) {
        return realTimeIconsList_.get(index);
      } else {
        return realTimeIconsListBuilder_.getMessage(index);
      }
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder setRealTimeIconsList(
        int index, Image value) {
      if (realTimeIconsListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRealTimeIconsListIsMutable();
        realTimeIconsList_.set(index, value);
        onChanged();
      } else {
        realTimeIconsListBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder setRealTimeIconsList(
        int index, Image.Builder builderForValue) {
      if (realTimeIconsListBuilder_ == null) {
        ensureRealTimeIconsListIsMutable();
        realTimeIconsList_.set(index, builderForValue.build());
        onChanged();
      } else {
        realTimeIconsListBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder addRealTimeIconsList(Image value) {
      if (realTimeIconsListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRealTimeIconsListIsMutable();
        realTimeIconsList_.add(value);
        onChanged();
      } else {
        realTimeIconsListBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder addRealTimeIconsList(
        int index, Image value) {
      if (realTimeIconsListBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRealTimeIconsListIsMutable();
        realTimeIconsList_.add(index, value);
        onChanged();
      } else {
        realTimeIconsListBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder addRealTimeIconsList(
        Image.Builder builderForValue) {
      if (realTimeIconsListBuilder_ == null) {
        ensureRealTimeIconsListIsMutable();
        realTimeIconsList_.add(builderForValue.build());
        onChanged();
      } else {
        realTimeIconsListBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder addRealTimeIconsList(
        int index, Image.Builder builderForValue) {
      if (realTimeIconsListBuilder_ == null) {
        ensureRealTimeIconsListIsMutable();
        realTimeIconsList_.add(index, builderForValue.build());
        onChanged();
      } else {
        realTimeIconsListBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder addAllRealTimeIconsList(
        Iterable<? extends Image> values) {
      if (realTimeIconsListBuilder_ == null) {
        ensureRealTimeIconsListIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, realTimeIconsList_);
        onChanged();
      } else {
        realTimeIconsListBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder clearRealTimeIconsList() {
      if (realTimeIconsListBuilder_ == null) {
        realTimeIconsList_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x08000000);
        onChanged();
      } else {
        realTimeIconsListBuilder_.clear();
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Builder removeRealTimeIconsList(int index) {
      if (realTimeIconsListBuilder_ == null) {
        ensureRealTimeIconsListIsMutable();
        realTimeIconsList_.remove(index);
        onChanged();
      } else {
        realTimeIconsListBuilder_.remove(index);
      }
      return this;
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Image.Builder getRealTimeIconsListBuilder(
        int index) {
      return getRealTimeIconsListFieldBuilder().getBuilder(index);
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public ImageOrBuilder getRealTimeIconsListOrBuilder(
        int index) {
      if (realTimeIconsListBuilder_ == null) {
        return realTimeIconsList_.get(index);  } else {
        return realTimeIconsListBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public java.util.List<? extends ImageOrBuilder>
         getRealTimeIconsListOrBuilderList() {
      if (realTimeIconsListBuilder_ != null) {
        return realTimeIconsListBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(realTimeIconsList_);
      }
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Image.Builder addRealTimeIconsListBuilder() {
      return getRealTimeIconsListFieldBuilder().addBuilder(
          Image.getDefaultInstance());
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public Image.Builder addRealTimeIconsListBuilder(
        int index) {
      return getRealTimeIconsListFieldBuilder().addBuilder(
          index, Image.getDefaultInstance());
    }
    /**
     * <code>repeated .Image RealTimeIconsList = 29;</code>
     */
    public java.util.List<Image.Builder>
         getRealTimeIconsListBuilderList() {
      return getRealTimeIconsListFieldBuilder().getBuilderList();
    }
    private com.google.protobuf.RepeatedFieldBuilderV3<
        Image, Image.Builder, ImageOrBuilder>
        getRealTimeIconsListFieldBuilder() {
      if (realTimeIconsListBuilder_ == null) {
        realTimeIconsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            Image, Image.Builder, ImageOrBuilder>(
                realTimeIconsList_,
                ((bitField0_ & 0x08000000) != 0),
                getParentForChildren(),
                isClean());
        realTimeIconsList_ = null;
      }
      return realTimeIconsListBuilder_;
    }

    private Object displayId_ = "";
    /**
     * <code>string displayId = 38;</code>
     * @return The displayId.
     */
    public String getDisplayId() {
      Object ref = displayId_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        displayId_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string displayId = 38;</code>
     * @return The bytes for displayId.
     */
    public com.google.protobuf.ByteString
        getDisplayIdBytes() {
      Object ref = displayId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        displayId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string displayId = 38;</code>
     * @param value The displayId to set.
     * @return This builder for chaining.
     */
    public Builder setDisplayId(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      displayId_ = value;
      bitField0_ |= 0x10000000;
      onChanged();
      return this;
    }
    /**
     * <code>string displayId = 38;</code>
     * @return This builder for chaining.
     */
    public Builder clearDisplayId() {
      displayId_ = getDefaultInstance().getDisplayId();
      bitField0_ = (bitField0_ & ~0x10000000);
      onChanged();
      return this;
    }
    /**
     * <code>string displayId = 38;</code>
     * @param value The bytes for displayId to set.
     * @return This builder for chaining.
     */
    public Builder setDisplayIdBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      displayId_ = value;
      bitField0_ |= 0x10000000;
      onChanged();
      return this;
    }

    private Object secUid_ = "";
    /**
     * <code>string secUid = 46;</code>
     * @return The secUid.
     */
    public String getSecUid() {
      Object ref = secUid_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        secUid_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string secUid = 46;</code>
     * @return The bytes for secUid.
     */
    public com.google.protobuf.ByteString
        getSecUidBytes() {
      Object ref = secUid_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        secUid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string secUid = 46;</code>
     * @param value The secUid to set.
     * @return This builder for chaining.
     */
    public Builder setSecUid(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      secUid_ = value;
      bitField0_ |= 0x20000000;
      onChanged();
      return this;
    }
    /**
     * <code>string secUid = 46;</code>
     * @return This builder for chaining.
     */
    public Builder clearSecUid() {
      secUid_ = getDefaultInstance().getSecUid();
      bitField0_ = (bitField0_ & ~0x20000000);
      onChanged();
      return this;
    }
    /**
     * <code>string secUid = 46;</code>
     * @param value The bytes for secUid to set.
     * @return This builder for chaining.
     */
    public Builder setSecUidBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      secUid_ = value;
      bitField0_ |= 0x20000000;
      onChanged();
      return this;
    }

    private long fanTicketCount_ ;
    /**
     * <code>uint64 fanTicketCount = 1022;</code>
     * @return The fanTicketCount.
     */
    @Override
    public long getFanTicketCount() {
      return fanTicketCount_;
    }
    /**
     * <code>uint64 fanTicketCount = 1022;</code>
     * @param value The fanTicketCount to set.
     * @return This builder for chaining.
     */
    public Builder setFanTicketCount(long value) {

      fanTicketCount_ = value;
      bitField0_ |= 0x40000000;
      onChanged();
      return this;
    }
    /**
     * <code>uint64 fanTicketCount = 1022;</code>
     * @return This builder for chaining.
     */
    public Builder clearFanTicketCount() {
      bitField0_ = (bitField0_ & ~0x40000000);
      fanTicketCount_ = 0L;
      onChanged();
      return this;
    }

    private Object idStr_ = "";
    /**
     * <code>string idStr = 1028;</code>
     * @return The idStr.
     */
    public String getIdStr() {
      Object ref = idStr_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        idStr_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }
    /**
     * <code>string idStr = 1028;</code>
     * @return The bytes for idStr.
     */
    public com.google.protobuf.ByteString
        getIdStrBytes() {
      Object ref = idStr_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        idStr_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string idStr = 1028;</code>
     * @param value The idStr to set.
     * @return This builder for chaining.
     */
    public Builder setIdStr(
        String value) {
      if (value == null) { throw new NullPointerException(); }
      idStr_ = value;
      bitField0_ |= 0x80000000;
      onChanged();
      return this;
    }
    /**
     * <code>string idStr = 1028;</code>
     * @return This builder for chaining.
     */
    public Builder clearIdStr() {
      idStr_ = getDefaultInstance().getIdStr();
      bitField0_ = (bitField0_ & ~0x80000000);
      onChanged();
      return this;
    }
    /**
     * <code>string idStr = 1028;</code>
     * @param value The bytes for idStr to set.
     * @return This builder for chaining.
     */
    public Builder setIdStrBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) { throw new NullPointerException(); }
      checkByteStringIsUtf8(value);
      idStr_ = value;
      bitField0_ |= 0x80000000;
      onChanged();
      return this;
    }

    private int ageRange_ ;
    /**
     * <code>uint32 ageRange = 1045;</code>
     * @return The ageRange.
     */
    @Override
    public int getAgeRange() {
      return ageRange_;
    }
    /**
     * <code>uint32 ageRange = 1045;</code>
     * @param value The ageRange to set.
     * @return This builder for chaining.
     */
    public Builder setAgeRange(int value) {

      ageRange_ = value;
      bitField1_ |= 0x00000001;
      onChanged();
      return this;
    }
    /**
     * <code>uint32 ageRange = 1045;</code>
     * @return This builder for chaining.
     */
    public Builder clearAgeRange() {
      bitField1_ = (bitField1_ & ~0x00000001);
      ageRange_ = 0;
      onChanged();
      return this;
    }
    @Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }


    // @@protoc_insertion_point(builder_scope:User)
  }

  // @@protoc_insertion_point(class_scope:User)
  private static final User DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new User();
  }

  public static User getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<User>
      PARSER = new com.google.protobuf.AbstractParser<User>() {
    @Override
    public User parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      Builder builder = newBuilder();
      try {
        builder.mergeFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(builder.buildPartial());
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e)
            .setUnfinishedMessage(builder.buildPartial());
      }
      return builder.buildPartial();
    }
  };

  public static com.google.protobuf.Parser<User> parser() {
    return PARSER;
  }

  @Override
  public com.google.protobuf.Parser<User> getParserForType() {
    return PARSER;
  }

  @Override
  public User getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

